package com.example.demo.config.service;

import com.example.demo.common.dto.MessageDTO;
import org.apache.rocketmq.client.producer.SendCallback;

/**
 * @author yongen
 * @description: 发送消息接口
 * @date 2022/2/9 2:33 PM
 */
public interface RocketMQProducerService {

  /**
   * 同步发送消息
   *
   * @param messageDTO 消息体
   * @return 发送成功标识
   */
  boolean sendMessage(MessageDTO messageDTO);

  /**
   * 异步发送消息
   *
   * @param messageDTO   消息体
   * @param sendCallback 发送回调
   */
  void sendSyncMessage(MessageDTO messageDTO, SendCallback sendCallback);

  /**
   * 单向发送消息
   *
   * @param messageDTO 消息体
   */
  void sendOnewayMessage(MessageDTO messageDTO);
}
